Bingo, Computer Graphics & Game Developer
为记录第一次在网易游戏电面PC客户端游戏研发职位的博客。
以下问题针对PBRT而言
1.BRDF的单位是什么?
开口跪
2.渲染方程中左边那一项,具体的含义是什么。是irradiance还是radiance,他们具体的单位又是什么?
概念回答的还算准确,但是他们具体的单位又说的有点模棱两可,后来发现其实也没有说错。
3.BRDF和pdf的关系是什么?
我回答的是的解读,但具体有何联系说的有点模棱两可,理解深度也是不够。
4.蒙特卡洛方法是如何实现Ray Tracing的,或者说蒙特卡洛方法是怎样得到最终结果的?
回答的乱七八糟,语言逻辑组织的很有问题。对蒙特卡洛的理解深度还是不够。
5.Russian rulette的具体作用是何?
这里我提到是减小方差,但事实上作用不仅如此。是因为挑选出了重要的光路。
6.你的渲染器是如何实现高光项的?
这一提问没答好,事实上后来想了一下,可以回答Atoms折射模型里,用菲涅尔项算出反射概率用此概率计算反射项即可。
只是提了一句微表面,以后不能作大死。不记得具体公式,只回答出了一个大体的概念。
8.irradiance和radiance各是什么?
概念是回答八九不离十,但是区别和单位上又犹豫了一段时间。
以下全篇基本上都是gg状态,很久不搞光栅化,连基本概念都搞不清了。
1.光栅化的含义?具体的过程是怎么样的?
说了一下就是把几何上的三角形转换成栅格化像素的过程,其他gg
2.你的软件光栅化,顶点在进行转换的时候,具体做了哪些事?
好几年没看了,只说出了把所有的模型对象全都转换到相机坐标下,问转换完之后做了什么就不记得了,gg
3.当时提了一个Phong模型,问我其他的模型的公式知道吗?
gg
4.齐次坐标如何表示点和矢量?为什么要这样表示?
只回答对了w项。具体为什么我说平移就用不了了,但是好像不是很对。gg
5.OpenGL和DirectX懂哪个?
GL不够深入,gg
1.override和overload的差别?
一个是覆盖,一个是函数重载,可以见C++专题
2.override和哪个关键字是相对的?
final
3.为什么要写override关键字,会有什么好处或者不写有什么坏处?
只知道覆盖的作用,坏处gg
4.虚函数的实现机制?虚表里放了什么?有什么作用?
基类指针里存放了被覆盖的子类的虚函数指针
5.异常处理用过吗?智能指针用过吗,构造和赋值的时候具体都做了些什么事?
智能指针只知道引用计数,其他统统gg
现有两个与坐标轴不平行的2D矩形,程序思想上如何实现矩形是否相交?
分离轴。
如何求点在直线上的投影点?
没想起来一个较好的,用了一个解析几何的办法。想了个点到直线距离,然后直角三角形的做法
有没有更好的办法,比如矢量的办法求?
没能现推出来一个好的。可见这个
也是询问了一下面试官我自己未来应该如何学习,希望能够在pbrt上继续深入下去,pbrt很不错,他的同事也没有多少人看完了这本书。光栅化的不熟悉不行,要很熟悉光栅化那一套。
一句话就是,开口跪,全场懵逼,直接gg。